【C语言】getchar() → 字符数据输入 您所在的位置:网站首页 c语言 cr 【C语言】getchar() → 字符数据输入

【C语言】getchar() → 字符数据输入

2024-01-25 19:59| 来源: 网络整理| 查看: 265

🚩write in front🚩   

🔎大家好,我是謓泽,希望你看完之后,能对你有所帮助,不足请指正!共同学习交流🔎

🏅2021|2022年度博客之星物联网与嵌入式开发TOP5|TOP4~2021博客之星TOP100~2022博客之星TOP63~作者周榜84﹣作者总榜704~阿里云专家博主 & 阿里云星级博主~掘金优秀创作者⇿InfoQ创作者⇿51CTO红人⇿全网访问量50w+🏅

🆔本文由 謓泽 原创 如需转载还请通知⚠

📝个人主页-​​謓泽51Ctop的博客​​📃

🎁欢迎各位→点赞👍 + 收藏⭐️ + 留言📝

📣系列专栏-​​謓泽51Ctop的博客_【C语言】从0~1_51CTO博客​​🎓 ✉️我们并非登上我们所选择的舞台,演出并非我们所选择的剧本📩

🍰前言🍰

相信大家对输入输出函数并不陌生,大家应该对输出函数当中的 printf() 和 输入函数当中的scanf() 是再熟悉不过了。这两种一个输入另一个输出也是在我们程序当中经常可以看的到的尤其是输出函数printf(),可以说这个是每个程序代码中必须要的。

总而言之就是:可以没有输入函数、但是一定要有输出函数(●'◡'●)

那么接下来就来介绍下本篇博客的重点也是输入函数和输出函数,但是对于初学C的小伙伴它们可就没有上面的那两个怎么受欢迎了。但是它们也是我们学C语言的小伙伴们必须要掌握的,那么有请"主角"登场如下所示↓

🍒putchar() → 字符输出函数。🍒getchar() → 字符输入函数。 🎂getchar() → 字符数据输入🎂 

字符数据输入当中是可以使用getchar()函数,作用是向显示设备进行输入①个无符号字符。

注意:是①个字符,当然也可以说是单个字符咯。

getchar() 函数语法形式如下↓

int getchar ( void );【C语言】getchar() → 字符数据输入_代码示例

使用该函数的头文件就是:#include

🍯无参🍯

无类型 void

🍯返回值🍯

如果成功,则返回字符读取(提升为int值)

返回类型为int,以适应特殊值EOF,表示失败。

如果标准输入在文件结束处,该函数返回EOF并设置stdin的EOF指示符(feof)。

如果发生了其他的读取错误,函数也会返回EOF,但会设置它的错误指示符(ferror)。

C语言标准函数库中表示文件结束符。🍇返回类型🍇

相信有细心的小伙伴已经发现了一个问题明明在这里输入的是字符型类型为什么最终的返回值是整形(int)类型而不是字符(char)呢?

解释→如果getchar()的返回值是char类型的话那么它的范围值是0~255这些在ASCll码值上都是合法的范围值。注意:在ASCll码表当中有两个表格Ⅰ基础表 Ⅱ扩展表 不管你那种表格最终的char类型的范围已经把它给占满了。如果在这里的返回值是char类型那么会有一个问题当你获取成功的时候还好说,因为成功的时候你的返回值是一个有效的字符。一旦获取值的时候获取失败的话也就是比特位的概念。原本char类型是有⑧个比特位[最大] 1111 1111 那么我获取的值是假设是:1 000 0000 的话那么这种情况对应的就是错误[虽说实际上编译器我依旧仍未你这个是成功的]。那么当你返回的时候此时就只能截取后⑧位 0000 0000 了。所以这就是为什么返回类型需要整形类型的原因。

拓展→键盘输入的内容或者往显示器中打印的内容,全部都是字符[牢记!]

🍯注意↓🍯

getchar()是只能够接收一个字符的。此时,张三就有疑问了謓泽謓泽为什么我看有些代码上的getchar()可以输入多组数据啊,甚至有些代码可以输入字符直到你输入回车('\n')它就会退出啊,这个是怎么回事鸭(●'◡'●)

【C语言】getchar() → 字符数据输入_数据_02

【C语言】getchar() → 字符数据输入_数据_03​编辑

这就说明你对这个getchar()的功能不太了解了,那么接下来给你看两组代码如下↓

🍯第①种多组数据🍯

代码示例如下↓

while(scanf("%d%d",&a,&b)!=EOF)

张三同学多组数据并不是用getchar(),而是用scanf()输入函数的( •̀ .̫ •́ )✧

输入包含多组测试数据,正常使用scanf("%d%d”,&a,&b)是只能输入一组。所以,我们就需要加上 while 循环语句。循环条件为读入不为EOF(C语言标准函数库中表示文件结束符)

想要实现退出可以按 CTRL+ c 或者 CTRL + z 这两种方法都是可以退出运行界面的。

🍯第②种输入字符直到输入回车🍯

代码示例如下↓

while (getchar() != '\n')

通过上面我们知道getchar()作用是向显示设备进行输入①个无符号字符。于是,我们这里就要给层循环能让它一直输入。但是终归是要退出的,不然就死循环了。所以,这里加了不等于'\n'(回车),这样当我们输入字符想要退出的时候就可以按回车了。

🎂getchar()练习题🎂

题目一→使用 getchar() 函数获取字符串,然后再用 putchar() 来进行输出。如下代码所示↓

#define _CRT_SECURE_NO_WARNINGS 1#includeint main(void){ char a = getchar(); putchar(a); printf("\n"); getchar(); putchar(getchar()); return 0;}

运行结果🖊 

A

A

a

a

题目二→使用 getchar() 统计输入的字符。如下代码所示↓

#define _CRT_SECURE_NO_WARNINGS 1#include

int main(void){ int count = 0; while (getchar() != '\n') { count = count + 1; } printf("%d\n", count);

return 0;}

运行结果🖊 

C语言Yo

5

注→张三:不是说getchar()是向设备输入⒈个字符吗。这里为什么可以一直输入。在这里一定要注意我们这里是while()循环且表达式!='\n'也就是说当我们没有输入回车的时候表达式会一直为真执行下去。

🍯最后🍯

那么putchar() → 字符输出函数和getchar() → 字符输入函数。就到这里啦,那么到后面还会写一篇博客puts()输出函数和gets()输入函数。

好了学会了就点个👍,没学会收藏起来慢慢学(╹ڡ╹ ),好的话直接三连走起(^∀^●)ノシ

【C语言】getchar() → 字符数据输入_代码示例_04



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有